package org.tissou.client.Interface;

import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.Panel;
import org.tissou.client.Interface.Affichable;

/**
 * Created by IntelliJ IDEA.
 * User: Claire
 * Date: 14-Mar-2009
 * Time: 11:17:17
 * To change this template use File | Settings | File Templates.
 */
public abstract class Base_Panel implements Affichable {

  protected abstract void MiseEnPlaceStyles();
  protected abstract void MiseEnPlaceParametresWidgets();
  protected abstract void MiseEnPlaceParametresPanel();
  protected abstract void MiseEnPlaceActions();
  protected abstract void MiseEnPlacePanels();


  protected abstract Panel donneLePanelPrincipal();

  public void afficherDans(Panel p){
    ajouterLePanelPrincipalACeluiDansLequelOnVeutSAfficher(p);
    MiseEnPlaceStyles();
    MiseEnPlaceParametresWidgets();
    MiseEnPlaceParametresPanel();
    MiseEnPlaceActions();
    MiseEnPlacePanels();
  }

    private void ajouterLePanelPrincipalACeluiDansLequelOnVeutSAfficher(Panel p) {
        p.add(donneLePanelPrincipal());
    }

    public Panel construireEtRenvoyerPrincipal(){
    MiseEnPlaceStyles();
    MiseEnPlaceParametresWidgets();
    MiseEnPlaceParametresPanel();
    MiseEnPlaceActions();
    MiseEnPlacePanels();
    return donneLePanelPrincipal();
  }

  public void jeTeCliqueSurLaGueule() {
    // Par default, ben c'est pas grave quoi tu fais rien. Par contre si tu veux faire quelque
    // chose, il faut Override ce truc la.
  }
}
